﻿<?php
/**
* @version		$Id: view.html.php 9764 2007-12-30 07:48:11Z ircmaxell $
* @package		Joomla
* @subpackage	Poll
* @copyright	Copyright (C) 2005 - 2008 Open Source Matters. All rights reserved.
* @license		GNU/GPL, see LICENSE.php
* Joomla! is free software. This version may have been modified pursuant
* to the GNU General Public License, and as distributed it includes or
* is derivative of works licensed under the GNU General Public License or
* other free or open source software licenses.
* See COPYRIGHT.php for copyright notices and details.
*/

// Check to ensure this file is included in Joomla!
defined('_JEXEC') or die();

jimport( 'joomla.application.component.view');

class amapViewabocom extends JView
{
	var $amap;

	function display($tpl = null)
	{
   $mainframe =& JFactory::getApplication();

		$database =& JFactory::getDBO();
		$document =& JFactory::getDocument();
		$user =& JFactory::getUser();

		$pathway  =& $mainframe->getPathway();

		// Adds parameter handling
		$params = $mainframe->getParams();

		//Set page title information
		$document->setTitle('Commentaire');

		//Set pathway information
		$pathway->addItem('Gestion des contrats', 'index.php?option=com_amap&view=gestaboldb');
		$pathway->addItem('Commentaire', '');

		$params->def( 'show_page_title', 1 );
		$params->def( 'page_title', 'commentaire');
		
		if($this->amap->adLoggue && $mainframe->getUserState("amap_droitAbo", FALSE))
		{
			if (!isset($this->amap->formulaire)) {
				$ida = JRequest::getVar('ida', 0);
				$abo = JRequest::getVar('abo', NULL);
	
				// le formulaire n'a pas été crée, on le fait en partant du formulaire d'abonnement
				if (!isset($this->amap->formulaire)) {
					$this->amap->formulaire = $this->amap->formulaireAbo();
				}
				// que l'on modifie 
				$this->amap->formulaire->task = 'statutAbo';
				$this->amap->formulaire->titre = 'Modification d\'abonnement';
				$this->amap->formulaire->submittext = 'Valider';
				$this->amap->formulaire->texte = 'Cette page vous permet de modifier le statut ou les caractéristiques d\'un abonnement et de laisser un commentaire à l\'abonné';
				// en particulier on personalise le formulaire 
				$this->amap->formulaire->fields['IDA']['value'] = $ida;
				$distribPossibles=$this->amap->distributions();
				// et auquel on rajoute des champs
				$this->amap->formulaire->fields += array(
					'abo'=>array('type'=>'hidden', 'name'=>'abo', 'value'=>$abo),
					'derniereDistrib'=>array('libelle'=>'date de dernière livraison','type'=>'select','name'=>'derniereDistrib','options'=>$distribPossibles,'size'=>1,'value'=>''),
					'statut'=>array('libelle'=>'statut','type'=>'select', 'name'=>'statut', 'size'=>1,'options'=>array('Encours', 'Liste', 'Abonne', 'Invalide')),
					'fieldset4'=>array('type'=>'fieldset', 'legend'=>'Commenter l\'abonnement', 'endfield'=>'commentaire'),
					'commentaire'=>array('libelle'=>'Votre texte', 'name'=>'commentaire', 'type'=>'textarea', 'cols'=>40, 'rows'=>4, 'value'=>$this->amap->adComAbo($ida),'errmsg'=>NULL),
					'mail'=>array('libelle'=>'envoyer un mail à l\'abonné ?', 'name'=>'mail', 'type'=>'checkbox', 'value'=>0,'errmsg'=>NULL)
					);
				$this->amap->formulaire->fields['premiereDistrib']['libelle'] = 'date de première livraison';
				$this->amap->formulaire->fields['premiereDistrib']['options'] =  $distribPossibles;
				$this->amap->formulaire->fields['fieldset3']['endfield'] = 'statut';
				$this->amap->formulaire->fields['fieldset3']['legend'] = 'Dates et statut';
				
				// On initialise avec les valeurs courantes de l'abonnement en base 
				$query = "SELECT aa.*, ad.*
							FROM amap_abonnementadherent as aa
								INNER JOIN amap_adherent as ad
								ON aa.IDA = ad.IDA
							WHERE aa.NomAbonnement = '".$abo."' AND aa.IDA = ".$ida;
				$database->setQuery($query);
				$database->query(); if ($database->getErrorNum()) {echo 'Error ' . $database->getErrorNum() . ': ' . $database->getErrorMsg();} 

				if ($database->getNumRows() == 0) { // on n'a pas trouvé d'abonnement 
					message("L'abonnement n'a pas été retrouvé en base !", "error");

				} else {
					$aboadherent = $database->loadAssoc();
				}
				
				//~ print_r($aboadherent);
				
				$this->amap->formulaire->texte .= '<div class="amap_info">Abonnement <u style="color: orange;">'.$aboadherent["NomAbonnement"].'</u> de <b style="font-size: 18px;">'.FormatNomsAdh($aboadherent["Nom"], $aboadherent["Prenom"]).'</b> ('.$aboadherent["Email"].')</div>';
				
				$this->amap->formulaire->fields['premiereDistrib']['value'] = $aboadherent['PremiereDistribution'];
				$this->amap->formulaire->fields['derniereDistrib']['value'] = $aboadherent['DerniereDistribution'];
				$this->amap->formulaire->fields['quantite']['value'] = $aboadherent['Quantite'];
				$this->amap->formulaire->fields['variante']['value'] = $aboadherent['Variante'];
				$this->amap->formulaire->fields['statut']['value'] = $aboadherent['Statut'];
				
				// On renseigne les options prises éventuellement. Pour cela on regarde on recherche dans le formulaire tout les champs options 
				$i=1; $stop=0; 
				while ($i<=10 && !$stop) { // On recherche les 10 champs d'option
					$stop = 1; // on arrête la prochaine fois si on a pas trouvé cette fois 
					foreach ($this->amap->formulaire->fields as $cleField => $valField) {
						if ($cleField == 'option'.$i) { // On a trouvé le champs d'option
							// on vérifie son type 
							if ($valField['type'] == 'checkbox') { // champs de type checkbox
								// Le bout de code ici reste à écrire !! 
							} elseif ($valField['type'] == 'text') { // champs numérique : on met dans le formulaire la valeur du champs 
								$this->amap->formulaire->fields['option'.$i]['value'] = $aboadherent['QuantiteOption'.$i];
							} // Si autre type on ne fait rien 
							$stop = 0 ; // on a trouvé on continue a parcourir les options	
						}
					}
					$i+=1; // on a parcouru tout le formulaire, on passe à l'option suivante
				}		
				
				// et en particulier on personalise le formulaire avec les données relatives à l'abonné (et pas celle du gestionnaire)
				$this->amap->formulaire->fields['IDA']['value'] = $ida;
								
			}
			// et on affiche ...
			$this->amap->formulaire->affiche();
			
			//~ echo '<p class="amap_legend"><img src="components/com_amap/images/aide.png" style="position:relative;top:6px;margin-right:4px;" />Besoin d\'aide ?</p>';
			//~ echo '<div id="amap_footer">blablabla blablabla </div>';
		}
//JRequest::setCmd( 'layout', $template );		
parent::display($tpl);
	}
}
?>
